import { asyncRoutes, constantRoutes } from '@/router'
export default {
  // 告诉vuex，该模块所有的state 、mutations、actions里面的东西调用时都需要加上命名空间，这个命名空间就是该模块被improt时命名的名字。
  namespaced: true,
  state: {
    routers: []
  },
  mutations: {
    setRouters(state, routers) {
      // 保存筛选后的routers,同时与静态路由进行拼接
      state.routers = [...constantRoutes, ...routers]
    }
  },
  actions: {
    filterAsyncRoutes(context, menus) {
      // 遍历动态路由
      const routers = asyncRoutes.filter(item => menus.includes(item.name))
      //   console.log(routers)
      // 将筛选后的routers提交到mutations中
      context.commit('setRouters', routers)
      //  筛选后返回数据，用于追加路由，根据用户的权限来追加
      return routers
    }
  }
}
